/*
 * Powered By [Seven]
 * Since 2016 - 2019
 */


package com.czmh.etc.onlinepubsys.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

@Entity
@Table(name = "etc_wechatrefundorder")
public class EtcWechatrefundorder extends BaseModel {
	
	//alias
	public static final String TABLE_ALIAS = "EtcWechatrefundorder";
	public static final String ALIAS_REFUND_ID = "主键";
	public static final String ALIAS_APPID = "微信分配的公众账号ID（企业号corpid即为此appId）";
	public static final String ALIAS_MCH_ID = "微信支付分配的商户号";
	public static final String ALIAS_NONCE_STR = "随机字符串";
	public static final String ALIAS_SIGN = "签名";
	public static final String ALIAS_SIGN_TYPE = "签名类型，目前支持HMAC-SHA256和MD5，默认为MD5";
	public static final String ALIAS_TRANSACTION_ID = "微信生成的订单号";
	public static final String ALIAS_OUT_TRADE_NO = "商户系统内部订单号";
	public static final String ALIAS_OUT_REFUND_NO = "商户系统内部的退款单号";
	public static final String ALIAS_TOTAL_FEE = "订单总金额，单位为分，只能为整数";
	public static final String ALIAS_REFUND_FEE = "退款总金额，订单总金额，单位为分，只能为整数";
	public static final String ALIAS_REFUND_FEE_TYPE = "退款货币类型，默认人民币：CNY";
	public static final String ALIAS_REFUND_DESC = "若商户传入，会在下发给用户的退款消息中体现退款原因";
	public static final String ALIAS_REFUND_ACCOUNT = "仅针对老资金流商户使用 REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款） REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款";
	public static final String ALIAS_NOTIFY_URL = "异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数 如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。";
	public static final String ALIAS_RETURN_CODE = "返回状态码：SUCCESS/FAIL";
	public static final String ALIAS_RETURN_MSG = "返回信息";
	public static final String ALIAS_ERR_CODE = "错误代码";
	public static final String ALIAS_ERR_CODE_DES = "错误代码描述";
	 
	//可以直接使用: @Length(max=50,message="用户名长度不能大于50")显示错误消息
	//columns START
	@Column(name = "refund_id")
	@Id
	private java.lang.String refund_id;
	@Column(name = "appid")
	private java.lang.String appid;
	@Column(name = "mch_id")
	private java.lang.String mch_id;
	@Column(name = "nonce_str")
	private java.lang.String nonce_str;
	@Column(name = "sign")
	private java.lang.String sign;
	@Column(name = "sign_type")
	private java.lang.String sign_type;
	@Column(name = "transaction_id")
	private java.lang.String transaction_id;
	@Column(name = "out_trade_no")
	private java.lang.String out_trade_no;
	@Column(name = "out_refund_no")
	private java.lang.String out_refund_no;
	@Column(name = "total_fee")
	private java.lang.Integer total_fee;
	@Column(name = "refund_fee")
	private java.lang.Integer refund_fee;
	@Column(name = "refund_fee_type")
	private java.lang.String refund_fee_type;
	@Column(name = "refund_desc")
	private java.lang.String refund_desc;
	@Column(name = "refund_account")
	private java.lang.String refund_account;
	@Column(name = "notify_url")
	private java.lang.String notify_url;
	@Column(name = "return_code")
	private java.lang.String return_code;
	@Column(name = "return_msg")
	private java.lang.String return_msg;
	@Column(name = "err_code")
	private java.lang.String err_code;
	@Column(name = "err_code_des")
	private java.lang.String err_code_des;
	//columns END

	public EtcWechatrefundorder(){
	}

	public EtcWechatrefundorder(
		java.lang.String refund_id
	){
		this.refund_id = refund_id;
	}

	/**  
	 * 设置主键  
	 * @param refund_id 主键  
	 */  
	public void setRefund_id(java.lang.String refund_id) {
		this.refund_id = refund_id;
	}
	
	/**  
	 * 获取主键   
	 * @return refund_id 主键   
	 */
	public java.lang.String getRefund_id() {
		return this.refund_id;
	}
	/**  
	 * 设置微信分配的公众账号ID（企业号corpid即为此appId）  
	 * @param appid 微信分配的公众账号ID（企业号corpid即为此appId）  
	 */  
	public void setAppid(java.lang.String appid) {
		this.appid = appid;
	}
	
	/**  
	 * 获取微信分配的公众账号ID（企业号corpid即为此appId）   
	 * @return appid 微信分配的公众账号ID（企业号corpid即为此appId）   
	 */
	public java.lang.String getAppid() {
		return this.appid;
	}
	/**  
	 * 设置微信支付分配的商户号  
	 * @param mch_id 微信支付分配的商户号  
	 */  
	public void setMch_id(java.lang.String mch_id) {
		this.mch_id = mch_id;
	}
	
	/**  
	 * 获取微信支付分配的商户号   
	 * @return mch_id 微信支付分配的商户号   
	 */
	public java.lang.String getMch_id() {
		return this.mch_id;
	}
	/**  
	 * 设置随机字符串  
	 * @param nonce_str 随机字符串  
	 */  
	public void setNonce_str(java.lang.String nonce_str) {
		this.nonce_str = nonce_str;
	}
	
	/**  
	 * 获取随机字符串   
	 * @return nonce_str 随机字符串   
	 */
	public java.lang.String getNonce_str() {
		return this.nonce_str;
	}
	/**  
	 * 设置签名  
	 * @param sign 签名  
	 */  
	public void setSign(java.lang.String sign) {
		this.sign = sign;
	}
	
	/**  
	 * 获取签名   
	 * @return sign 签名   
	 */
	public java.lang.String getSign() {
		return this.sign;
	}
	/**  
	 * 设置签名类型，目前支持HMAC-SHA256和MD5，默认为MD5  
	 * @param sign_type 签名类型，目前支持HMAC-SHA256和MD5，默认为MD5  
	 */  
	public void setSign_type(java.lang.String sign_type) {
		this.sign_type = sign_type;
	}
	
	/**  
	 * 获取签名类型，目前支持HMAC-SHA256和MD5，默认为MD5   
	 * @return sign_type 签名类型，目前支持HMAC-SHA256和MD5，默认为MD5   
	 */
	public java.lang.String getSign_type() {
		return this.sign_type;
	}
	/**  
	 * 设置微信生成的订单号  
	 * @param transaction_id 微信生成的订单号  
	 */  
	public void setTransaction_id(java.lang.String transaction_id) {
		this.transaction_id = transaction_id;
	}
	
	/**  
	 * 获取微信生成的订单号   
	 * @return transaction_id 微信生成的订单号   
	 */
	public java.lang.String getTransaction_id() {
		return this.transaction_id;
	}
	/**  
	 * 设置商户系统内部订单号  
	 * @param out_trade_no 商户系统内部订单号  
	 */  
	public void setOut_trade_no(java.lang.String out_trade_no) {
		this.out_trade_no = out_trade_no;
	}
	
	/**  
	 * 获取商户系统内部订单号   
	 * @return out_trade_no 商户系统内部订单号   
	 */
	public java.lang.String getOut_trade_no() {
		return this.out_trade_no;
	}
	/**  
	 * 设置商户系统内部的退款单号  
	 * @param out_refund_no 商户系统内部的退款单号  
	 */  
	public void setOut_refund_no(java.lang.String out_refund_no) {
		this.out_refund_no = out_refund_no;
	}
	
	/**  
	 * 获取商户系统内部的退款单号   
	 * @return out_refund_no 商户系统内部的退款单号   
	 */
	public java.lang.String getOut_refund_no() {
		return this.out_refund_no;
	}
	/**  
	 * 设置订单总金额，单位为分，只能为整数  
	 * @param total_fee 订单总金额，单位为分，只能为整数  
	 */  
	public void setTotal_fee(java.lang.Integer total_fee) {
		this.total_fee = total_fee;
	}
	
	/**  
	 * 获取订单总金额，单位为分，只能为整数   
	 * @return total_fee 订单总金额，单位为分，只能为整数   
	 */
	public java.lang.Integer getTotal_fee() {
		return this.total_fee;
	}
	/**  
	 * 设置退款总金额，订单总金额，单位为分，只能为整数  
	 * @param refund_fee 退款总金额，订单总金额，单位为分，只能为整数  
	 */  
	public void setRefund_fee(java.lang.Integer refund_fee) {
		this.refund_fee = refund_fee;
	}
	
	/**  
	 * 获取退款总金额，订单总金额，单位为分，只能为整数   
	 * @return refund_fee 退款总金额，订单总金额，单位为分，只能为整数   
	 */
	public java.lang.Integer getRefund_fee() {
		return this.refund_fee;
	}
	/**  
	 * 设置退款货币类型，默认人民币：CNY  
	 * @param refund_fee_type 退款货币类型，默认人民币：CNY  
	 */  
	public void setRefund_fee_type(java.lang.String refund_fee_type) {
		this.refund_fee_type = refund_fee_type;
	}
	
	/**  
	 * 获取退款货币类型，默认人民币：CNY   
	 * @return refund_fee_type 退款货币类型，默认人民币：CNY   
	 */
	public java.lang.String getRefund_fee_type() {
		return this.refund_fee_type;
	}
	/**  
	 * 设置若商户传入，会在下发给用户的退款消息中体现退款原因  
	 * @param refund_desc 若商户传入，会在下发给用户的退款消息中体现退款原因  
	 */  
	public void setRefund_desc(java.lang.String refund_desc) {
		this.refund_desc = refund_desc;
	}
	
	/**  
	 * 获取若商户传入，会在下发给用户的退款消息中体现退款原因   
	 * @return refund_desc 若商户传入，会在下发给用户的退款消息中体现退款原因   
	 */
	public java.lang.String getRefund_desc() {
		return this.refund_desc;
	}
	/**  
	 * 设置仅针对老资金流商户使用 REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款） REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款  
	 * @param refund_account 仅针对老资金流商户使用 REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款） REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款  
	 */  
	public void setRefund_account(java.lang.String refund_account) {
		this.refund_account = refund_account;
	}
	
	/**  
	 * 获取仅针对老资金流商户使用 REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款） REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款   
	 * @return refund_account 仅针对老资金流商户使用 REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款） REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款   
	 */
	public java.lang.String getRefund_account() {
		return this.refund_account;
	}
	/**  
	 * 设置异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数 如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。  
	 * @param notify_url 异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数 如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。  
	 */  
	public void setNotify_url(java.lang.String notify_url) {
		this.notify_url = notify_url;
	}
	
	/**  
	 * 获取异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数 如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。   
	 * @return notify_url 异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数 如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。   
	 */
	public java.lang.String getNotify_url() {
		return this.notify_url;
	}
	/**  
	 * 设置返回状态码：SUCCESS/FAIL  
	 * @param return_code 返回状态码：SUCCESS/FAIL  
	 */  
	public void setReturn_code(java.lang.String return_code) {
		this.return_code = return_code;
	}
	
	/**  
	 * 获取返回状态码：SUCCESS/FAIL   
	 * @return return_code 返回状态码：SUCCESS/FAIL   
	 */
	public java.lang.String getReturn_code() {
		return this.return_code;
	}
	/**  
	 * 设置返回信息  
	 * @param return_msg 返回信息  
	 */  
	public void setReturn_msg(java.lang.String return_msg) {
		this.return_msg = return_msg;
	}
	
	/**  
	 * 获取返回信息   
	 * @return return_msg 返回信息   
	 */
	public java.lang.String getReturn_msg() {
		return this.return_msg;
	}
	/**  
	 * 设置错误代码  
	 * @param err_code 错误代码  
	 */  
	public void setErr_code(java.lang.String err_code) {
		this.err_code = err_code;
	}
	
	/**  
	 * 获取错误代码   
	 * @return err_code 错误代码   
	 */
	public java.lang.String getErr_code() {
		return this.err_code;
	}
	/**  
	 * 设置错误代码描述  
	 * @param err_code_des 错误代码描述  
	 */  
	public void setErr_code_des(java.lang.String err_code_des) {
		this.err_code_des = err_code_des;
	}
	
	/**  
	 * 获取错误代码描述   
	 * @return err_code_des 错误代码描述   
	 */
	public java.lang.String getErr_code_des() {
		return this.err_code_des;
	}

	public String toString() {
		return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
			.append("refund_id",getRefund_id())
			.append("appid",getAppid())
			.append("mch_id",getMch_id())
			.append("nonce_str",getNonce_str())
			.append("sign",getSign())
			.append("sign_type",getSign_type())
			.append("transaction_id",getTransaction_id())
			.append("out_trade_no",getOut_trade_no())
			.append("out_refund_no",getOut_refund_no())
			.append("total_fee",getTotal_fee())
			.append("refund_fee",getRefund_fee())
			.append("refund_fee_type",getRefund_fee_type())
			.append("refund_desc",getRefund_desc())
			.append("refund_account",getRefund_account())
			.append("notify_url",getNotify_url())
			.append("return_code",getReturn_code())
			.append("return_msg",getReturn_msg())
			.append("err_code",getErr_code())
			.append("err_code_des",getErr_code_des())
			.toString();
	}
	
	public int hashCode() {
		return new HashCodeBuilder()
			.append(getRefund_id())
			.toHashCode();
	}
	
	public boolean equals(Object obj) {
		if(obj instanceof EtcWechatrefundorder == false) {
			return false;
		}
		if(this == obj) {
			return true;
		}
		EtcWechatrefundorder other = (EtcWechatrefundorder)obj;
		return new EqualsBuilder()
			.append(getRefund_id(),other.getRefund_id())
			.isEquals();
	}
}

